XpertRule Fuzzy Design Concepts

The fuzzy logic implementation in XpertRule was developed with three objectives in mind; to provide comprehensive features, to maintain ease of use and to integrate seamlessly with the non fuzzy (crisp) Rules in XpertRule.

Fuzzy Objects

·An Object of type List is defined as Fuzzy by setting its isFuzzy Property to True.

·A Fuzzy Object can either be used to represent Fuzzy Knowledge (Rules), or to represent a Fuzzy Attribute used in the definition of those Rules.

Fuzzy Attributes

·The fuzzyValue property of a Fuzzy Object holds its numeric runtime input value. This can be assigned by using procedural commands (e.g. @Assign Pressure.fuzzyValue = 50).

·The numeric range of the fuzzyValue property is mapped to the Object Values using the Fuzzy Membership Functions. These graphical functions derive the Fuzzy Membership Value (fuzzyMV) of each of the discrete Values (Instances) for any given fuzzyValue input.

Fuzzy Rules

·The fuzzyValue property holds the "defuzzified" numeric output value for the Rules Object, which is derived from the fuzzyMV and Fuzzy Membership Functions of each of the Values (Instances).

·The derivation of fuzzyMV of each of the Values (Instances) is based on which Rules fire at runtime and the fuzzyMV of the Values of the individual Fuzzy Attributes used by those rules.

·The Value with the highest fuzzyMV is selected.

·A Fuzzy Rules Object can contain both Fuzzy and non-Fuzzy Attributes (where the fuzzyMV is assumed to be 1.0 for the selected Value and 0.0 for all other Values).

·Fuzzy Rules inference for an Object can be made from either Cases/Rules or a Decision Tree (depending on the setting of the knowledgeMode property)

·More than one Rule / Tree Path may fire

·The rule condition is considered to be True if the fuzzyMV of its Values is greater then 0.

·For Objects where the multiSelect property is set to True, the "defuzzified" fuzzyValue is not required (and therefore no Fuzzy Membership Functions are defined). The output from such an object, which is still held in fuzzyMV for each of the Values, represent the Confidence Factors in each of the possible rule outcomes. Here all Object Values with fuzzyMV > 0 are selected.

·A Fuzzy Rules Object can be used as an Attribute in another Fuzzy (or non-Fuzzy) Rules Object